Was ist eine gute Grafik?

Darstellung von David McCandless in Knowledge is Beautiful (2014).

Informationen

  • Integrität der Datenquelle
  • Integrität der Darstellung

AChsen

Manipulation von Achsen

Beispiel aus der Einführung nehmen, aber Achse Cutten und oder nicht bei Null starten lassen. Dann eine weirde Message schreiben! Am besten etwas mit hohen nominalen Zahlen. Vielleicht etwas das sich über die Jahre verbessert hat? Dann alternativen zeigen, z.B. Ranzoomen!

https://www.data-to-viz.com/caveat/cut_y_axis.html

Konventionen

776.013 Home protection; use or threatened use of deadly force; presumption of fear of death or great bodily harm.— (1) A person who is in a dwelling or residence in which the person has a right to be has no duty to retreat and has the right to stand his or her ground and use or threaten to use:
(a) Nondeadly force against another when and to the extent that the person reasonably believes that such conduct is necessary to defend himself or herself or another against the other’s imminent use of unlawful force; or
(b) Deadly force if he or she reasonably believes that using or threatening to use such force is necessary to prevent imminent death or great bodily harm to himself or herself or another or to prevent the imminent commission of a forcible felony.

http://www.leg.state.fl.us/statutes/index.cfm?App_mode=Display_Statute&URL=0700-0799/0776/Sections/0776.013.html

Manipulation des Bildformats

set.seed(42)
my_weight <- data.frame(
  month = factor(c("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
    levels = c("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"),
    ordered = TRUE
  ),
  weight = rnorm(12, 90, 5) / 1000,
  group = rep(1, 12)
)

ggplot(
  my_weight,
  aes(x = month, y = weight, group = group)
) +
  geom_point() +
  geom_line() +
  labs(
    title = "Mein Gewicht 2024",
    subtitle = "In metrischen Tonnen",
    x = "Monat",
    y = "Gewicht in t"
  ) +
  ylim(0, 1000) +
  theme_bg() +
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust = 1))

Election Plot

https://storymaps.arcgis.com/stories/0e636a652d44484b9457f953994b212b Vielleicht mit Bundestagswahl?

Fehlender Kontext

Fehlender Kontext

Haushalt so groß wie nie

Irreführender Kontext

Story

Goal

Darstellung von Größen

Die Größe von Kreisen einzuschätzen ist schwer!

Das gleiche gilt für Winkel!

Versuche, die Größen zu sortieren:

Nützlichkeit

“Design is a requirement, not a cosmetic addition.” nature methods

Foto von Kelly Sikkema auf Unsplash

Foto von Yucel Moran auf Unsplash

Funktionelles Design

Welche Funktion?

Foto von BVG

Foto von BVG

Dabei kann es helfen, sich von bereits vorhandenen Plots inspirieren zu lassen.
Handschriftliche Skizze ist auch erstmal hilfreich!

Simplify to clarify

  • Redundanzen Reduzieren
  • Fokus auf das Wesentliche https://www.data-to-viz.com/caveat/declutter.html

Visual Form

Beispiel von einem komplexen Plot bringen, den wir schon erzeugt haben, und dann reduzieren!

Salienz von Informationen

https://www.nature.com/articles/nmeth1010-773

Farben

Foto von Efe Kurnaz auf Unsplash

Farbwahrnehmung beim Menschen

Primärfarben des Lichts: Rot, Grün, Blau

Trichromatizität

Der Mensch hat in der Regel drei Zapfentypen, die unterschiedlich sensitiv für bestimmte Wellenlängen sind:

  • RGB erklären (und die Addition im Gehirn?

By BenRG - Own work, Public Domain, Link

Andere Tiere können auch mal mehr oder weniger haben:

Viele Tiere sehen nur grau:

  • Wale
  • Haie
  • Waschbären
  • Faultiere
  • Armadillos
  • Oktopusse
  • Kraken

Warum also überhaupt Farbwahrnehmung?

  • Ist subjektiv
  • Aber kann konsistent wahrgenommen werden: Eine Erdebeere im Schatten und im Sonnenlicht kann jeweils rot wahrgenommen werden. Grautöne sind stärker vom Licht abhängig.
  • More is not always better: Affen vom Amerikanischen Kontinent sind teilweise die und teilweise tetra: di kann besser INsekten ausmachen, tri Früchte gegen grünen background.
  • Farbwahrnehmung also abhängig vom Drumrum
  • Farben bringen nur einen Vorteil, wenn ein Individuum daraus meaning ableiten kann.

Farben

Ganglienzellen übertragen keine Informationen über absolute Helligkeit, sondern über relative Helligkeit. ‣ Wie stark unterscheiden sich zwei Bereiche in ihrer Helligkeit? ‣ Wie stark hat sich eine Helligkeit gerade geändert? Allgemeine Lehre daraus: ‣ Visualisierung kann nicht gut darin sein, absolute Werte zu kommunizieren (Tabellen können das besser) ‣ Hingegen ist das visuelle System (und das Gehirn allgemein) extrem gut darin, Unterschiede und Veränderungen zu erkennen –> Beispiel bringen (Simultankontrast)

  • Graustufen nicht für absolute oder kategorische Werte nutzen (mehr als vier können iwr nicht gut unterscheiden)

Farbton, Sättigung, Helligkeit

Was bringt uns das jetzt für unsere Abbildungen?

1. Die Farben sollten unterscheidbar, aber ähnlich sein!

1. Unterscheidbar, aber ähnlich

1. Unterscheidbar, aber ähnlich

Farbton, Sättigung und Helligkeit

Variiert immer Farbton, Sättigung und Helligkeit gleichzeitig.

Grau

2. Intuitives Verständnis: Diskrete Farben vs. Farbverläufe

  • Vor allem für diskrete Gruppen geeignet
  • Farbverläufe schwieriger (aber es gibt color scales dafür)
  • Bestimmte Farben (Grün = gut, Rot = Gefahr)

Größe

Farbe ist relativ

Beispiel: Grautöne vs Rottöne

Bild von Nature Methods.

Farbe ist relativ

Fragen: Warum ist das noch eine schelchte Color scale?

Siehe Colblindor.

Farbfehlsichtigkeit

protanopic right side

By Mark Fairchild, CC BY-SA 3.0, Link

  • Protanopie: Zapfentyp L (rot) fehlt: rot vs grün Schwäche

  • Deuteranopie: Zapfentyp M (grün) fehlt: rot vs grün Schwäche

  • Tritanopie: Zapfentyp S (blau) fehlt: blau vs grün, gelb vs violett Schwäche

  • Take the above scale and show that it is not great for color blindness

  • https://www.color-blindness.com/coblis-color-blindness-simulator/

library(colorblindcheck)
palette_check(theme_colors_red, plot = TRUE)  
          name n tolerance ncp ndcp min_dist mean_dist max_dist
1       normal 6   4.95969  15   15 4.959690  19.65649 41.78456
2 deuteranopia 6   4.95969  15   15 5.428903  19.54489 42.55279
3   protanopia 6   4.95969  15   14 3.976233  19.39475 41.15790
4   tritanopia 6   4.95969  15   15 5.557603  19.68098 40.93915

Das kann man sich natürlich auch zu Nutze machen (Passt aber vielleicht eher zu space? -> da nochmal zeigen, hier die Punkte enger zusammen )

Nicht zu viele!

Color for coding a third dimension

  • Wie viel macht sinn?
  • Scatterplot
  • Sättigung um dimensionalität der Farben darzustellen

Farbfehlsichtigkeiten

Farbsehtests

  • Farbwahrnehmung braucht Helligkeit und Fläche

Anwendung in ggplot2: Farbskalen wählen

Manuell

ggplot(
  continent_co2_pct,
  aes(x = world_6region, 
      y = percentage, 
      fill = world_6region)) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_fill_manual(values = c("red", "green", "blue", "yellow", "violet", "brown"))

my_color_scale <- c("East Asia & Pacific" ="red", 
                    "South Asia" = "green", 
                    "Sub-Saharan Africa" = "blue", 
                    "Europe & Central Asia" = "yellow", 
                    "Middle East & North Africa" = "violet", 
                    "Americas" = "brown")
ggplot(
  continent_co2_pct,
  aes(x = world_6region, 
      y = percentage, 
      color = world_6region)) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_color_manual(values = my_color_scale)

Test code size

my_color_scale <- c("East Asia & Pacific" ="red", 
                    "South Asia" = "green", 
                    "Sub-Saharan Africa" = "blue", 
                    "Europe & Central Asia" = "yellow", 
                    "Middle East & North Africa" = "violet", 
                    "Americas" = "brown")
ggplot(
  continent_co2_pct,
  aes(x = world_6region, 
      y = percentage, 
      color = world_6region)) +
  geom_bar(stat = "identity", width = 1) +
  theme_minimal() +
  labs(title = "Share of global per capita CO2 consumption") +
  scale_color_manual(values = my_color_scale)

  • palettteer
  • https://r-graph-gallery.com/color-palette-finder
  • Intervallskaliert/Verhältnisskaliert: Es gibt Nullpunkt: Divergierende Skalen
    • Kein Nullpunkt: Gleichmäßige Abstände zwischen Farbwerten
  • Ordinal: Richtung und gute Unterscheidbarkeit im Farbraum
  • Nominalskaliert: Spriale/Diagnoale im Farbraum

Viele Möglichkeiten

  • pakete
  • Selbst stezten

Tools

  • Colorbrewer
  • Huemint

Farben: Zusammenfassung

Übung

  1. Teste, ob deine bisherige Abbildung für Menschen mit Farbfehlsichtigkeit lesbar ist.
  2. Baue eine eigene Color-Palette und wende sie auf deinen Plot an. Achte dabei auf Unterscheidbarkeit (Auch color blind), aber auch auf Design.

Gruppieren

Verteilungen Plotten

Eine Grafik ist kann nur einen Teil der Zusammenhänge darstellen

Im Schlechtesten Fall für Manipulation nutzbar

Black swann

Was mögt ihr an dieser Grafik/nicht?

Plot-Typen

Choosing the correct plot

https://www.data-to-viz.com/

Pulikum

Geschichte

  • Gleiche sache auf verschiedene Arten darstellen -> was wirkt am meisten?

Purpose

  • Exploratory vs. Explanatory
  • Kann oft über reines Zeigen der Daten hinausgehen.

Size

Also include population size in the scatterplot

Tufte

  • So wenig Tinte wie möglich nutzen
  • Alles nicht essentielle entfernen
  • Redundanzen entferenen

Beispiel zeigen: Eins ist aufgeblasen, man braucht Zeit zur Orientierung. Ein anderes theme_tufte

Data-ink ratio

Beispiel zum Minimieren zeigen - Raincloud plots

Caveats

https://www.data-to-viz.com/caveats.html

Immer einen Plot zeigen, dann zusammen überlgen was daran schlecht ist, was verbessert werden kann.

Takeaways

  • Kommunizieren von der größtmöglichen Anzahl von Ideen in kürzester Zeit.
  • Maximieren von Data-ink ratio
  • Minimieren von Chart-junk
  • Erhöhe Datendichte, Vervielfältige kleine Versionen der Abbildung für verschiedene Gruppen

Caveat Plots: See data to viz

Storytelling

Rolfs 7

Using Text/Annotations

Nutzen von Eigenschaften der Wahrnehmung

  • Bewusste Wahrnehmung ignoriert Informationen und fügt hinzu
  • Nähe
  • Salienz (Farbe, Größe, Neigung) (Szafir, Haroz, Gleicher & Franconeri (2016))
  • Hier würde das USA Bild passen (evtl. mit einem anderen Beispiel, das den Unterschied deutlich macht, z.B. keine andere Farbe, näher dran durch andere Achse)
  • Harold et al., 2016: Lenken von Aufmerksamkeit
  • Nothelfer et al., 2017: Redundatne Kodierung führt zu deutlich höherer Genauigkeit der Antworten und kürzeren Reaktionszeiten

Übung

Schlechte Grafiken verbessern: https://www.data-to-viz.com/caveats.html